Platform Explorer / Nuxeo Platform 6.0

Component org.nuxeo.ecm.diff.service.DiffDisplayService

Documentation

This service provides an extension point to manage document diff display.

Antoine Taillefer

Implementation

Class: org.nuxeo.ecm.diff.service.impl.DiffDisplayServiceImpl

Services

Extension Points

XML Source

<?xml version="1.0"?>
<component name="org.nuxeo.ecm.diff.service.DiffDisplayService">

  <documentation>
    This service provides an extension point to manage
    document diff display.

    @author
    Antoine Taillefer
  </documentation>

  <implementation
    class="org.nuxeo.ecm.diff.service.impl.DiffDisplayServiceImpl" />

  <service>
    <provide interface="org.nuxeo.ecm.diff.service.DiffDisplayService" />
  </service>

  <extension-point name="diffDefaultDisplay">

    <documentation>
      <pre>
        The diffDefaultDisplay extension point allows you to
        contribute a diffExcludedFields contribution to define a set of
        fields from a given schema that will be
        excluded from the default
        diff display in the document diff view (the default diff display
        takes into account every different field of every common schema
        between the compared documents, in an undefined order).

        If no
        fields are specified, the whole schema is excluded.
      </pre>
      <code>
        <diffExcludedFields schema="common" />
        <diffExcludedFields schema="dublincore">
          <fields>
            <field name="subjects" />
            <field name="modified" />
          </fields>
        </diffExcludedFields>
      </code>
    </documentation>
    <object
      class="org.nuxeo.ecm.diff.service.impl.DiffExcludedFieldsDescriptor" />

    <documentation>
      <pre>
        The diffDefaultDisplay extension point also allows you to
        contribute a diffComplexField contribution to define a set of
        items from a given complex property that will be
        included or
        excluded from the default
        diff display in the document diff view.
        Order matters for included items.
      </pre>
      <code>
        <diffComplexField schema="complextypes" name="complex">
          <includedItems>
            <item name="dateItem" />
            <item name="stringItem" />
          </includedItems>
        </diffComplexField>

        <diffComplexField schema="complextypes" name="complexList">
          <excludedItems>
            <item name="stringItem" />
            <item name="dateItem" />
          </excludedItems>
        </diffComplexField>
      </code>
    </documentation>
    <object class="org.nuxeo.ecm.diff.service.impl.DiffComplexFieldDescriptor" />

  </extension-point>


  <extension-point name="diffDisplay">
    <documentation>

      <pre>
        A diffDisplay contribution defines which diffBlocks will be
        displayed in the document diff view for a given document type.
        The order matters.

        If the 2 diffed documents have the same type,
        the diffDisplay matching this type is used, otherwise or if such
        a diffDisplay does not exist, the default diff display is used.
        The default diff display
        takes into account every different field
        of every common schema between the
        compared documents, in an
        undefined order.
      </pre>

      <code>
        <diffDisplay type="File">
          <diffBlocks>
            <diffBlock name="dublincore" />
            <diffBlock name="files" />
          </diffBlocks>
        </diffDisplay>
        <diffDisplay type="Note" enabled="false" />
      </code>

    </documentation>
    <object class="org.nuxeo.ecm.diff.service.impl.DiffDisplayDescriptor" />
  </extension-point>

  <extension-point name="diffBlock">
    <documentation>

      <pre>
        A diffBlock contribution defines which fields will be
        displayed in the diff display block.
        The order matters.

        For
        complex types, items can be
        defined to specifiy which sub-fields
        must be displayed and in which order.
      </pre>

      <code>
        <diffBlock name="dublincore" label="label.diffBlock.dublincore">
          <fields>
            <field schema="dublincore" name="description" />
            <field schema="dublincore" name="coverage" />
            <field schema="dublincore" name="created" />
            <field schema="dublincore" name="modified" />
          </fields>
        </diffBlock>
        <diffBlock name="files" label="label.diffBlock.files">
          <fields>
            <field schema="file" name="content"
              displayContentDiffLinks="true" />
            <field schema="files" name="files">
              <items>
                <!-- Display the file only, not the filename which is managed 
                  by the file widget type -->
                <item name="file" displayContentDiffLinks="true" />
              </items>
            </field>
          </fields>
        </diffBlock>
      </code>

    </documentation>
    <object class="org.nuxeo.ecm.diff.service.impl.DiffBlockDescriptor" />
  </extension-point>

</component>